#pragma once

#include <string>
#include <map>
#include "ofMain.h"

#ifndef OPTIONS_H
#define OPTIONS_H 1

using namespace std;

const static string optPath = "options/";

class Options {
	private:
		string file;
		map<string, string> opt;
		
	public:
		Options();
		Options(string _file);

		void setFile(string _file);

		void setOption(string _key, string _value);
		void setOption(string _key, int _value);
		void setOption(string _key, float _value);
		void setOption(string _key, double _value);

		string getOption(string _key);
		void removeOption(string _key);

		string checkKey(string _key, string _value);
		void checkKeys(map<string, string> m);

		bool readFile();
		bool readFile(string _file);

		bool writeFile();
		bool writeFile(string _file);

		string &operator [](string _key);
		friend ostream& operator<<(ostream& os, const Options& o);
};

#endif